<template>
  <div class="user-wrapper">
    <div class="content-box">
      <a href="https://pro.loacg.com/docs/getting-started" target="_blank">
        <span class="action">
          <a-icon type="question-circle-o"></a-icon>
        </span>
      </a>
      <!-- <notice-icon class="action"/> -->
      <span @click="fetchNotice" class="header-notice action" style="padding: 0 18px">
        <a-badge :count="messageCount">
          <a-icon style="font-size: 16px; padding: 4px" type="bell" />
        </a-badge>
      </span>
      <a-dropdown>
        <span class="action ant-dropdown-link user-dropdown-menu">
          <a-avatar class="avatar" size="small" :src="avatar + userName"/>
          <span>{{ userName }}</span>
        </span>
        <a-menu slot="overlay" class="user-dropdown-menu-wrapper">
          <a-menu-item key="0">
            <router-link :to="{ name: 'center' }">
              <a-icon type="user"/>
              <span>个人中心</span>
            </router-link>
          </a-menu-item>
          <a-menu-item key="1">
            <router-link :to="{ name: 'settings' }">
              <a-icon type="setting"/>
              <span>账户设置</span>
            </router-link>
          </a-menu-item>
          <a-menu-item key="2" disabled>
            <a-icon type="setting"/>
            <span>测试</span>
          </a-menu-item>
          <a-menu-divider/>
          <a-menu-item key="3">
            <a href="javascript:;" @click="handleLogout">
              <a-icon type="logout"/>
              <span>退出登录</span>
            </a>
          </a-menu-item>
        </a-menu>
      </a-dropdown>
    </div>
    <message-list-modal ref="noticeRef" @refresh="refresh"/>
  </div>
</template>

<script>
import NoticeIcon from '@/components/NoticeIcon'
import MessageListModal from '@/components/MessageNotice/MessageListModal'
import { mapActions, mapGetters } from 'vuex'
import { getMessageCount } from '@/api/system'

export default {
  name: 'UserMenu',
  components: {
    NoticeIcon,
    MessageListModal
  },
  data () {
    return {
      messageCount: 0,
      avatar: this.axios.defaults.baseURL + 'avatar/'
    }
  },
  created () {
    this.refresh()
  },
  computed: {
    ...mapGetters(['userName'])

  },
  methods: {
    ...mapActions(['Logout']),
    refresh () {
      getMessageCount().then(res => {
        this.messageCount = res.data
      })
    },
    handleLogout () {
      this.$confirm({
        title: '提示',
        content: '真的要注销登录吗 ?',
        onOk: () => {
          return this.Logout({}).then(() => {
            setTimeout(() => {
              window.location.reload()
            }, 16)
          }).catch(err => {
            this.$message.error({
              title: '错误',
              description: err.message
            })
          })
        },
        onCancel () {
        }
      })
    },
    fetchNotice () {
      this.$refs.noticeRef.open()
    }
  }
}
</script>
<style lang="less" scoped>
  .header-notice{
    display: inline-block;
    transition: all 0.3s;

    span {
      vertical-align: initial;
    }
  }
</style>
